package com.sdry.mapper.llm;

import java.util.List;
import java.util.Map;

import com.sdry.model.llm.Role;
import com.sdry.model.llm.RolePermission;
import com.sdry.model.llm.UserRole;

/** 
* 角色mapper
* @author lian 
* @version 1.0
* @time 2018年10月17日 上午12:42:32
*/
public interface RoleMapper {

	/**
	 * 获取角色总数
	 * @param role 角色信息实体类
	 */
	int countRole(Role role);

	/**
	 * 分页查询角色信息
	 * @param map 查询条件集合
	 */
	List<Role> listPageRole(Map<String, Object> map);

	/**
	 * 保存角色信息
	 * @param role 角色信息实体类
	 */
	int insertRole(Role role);

	/**
	 * 修改角色信息
	 * @param role 角色信息实体类
	 */
	int updateRole(Role role);

	/**
	 * 删除角色
	 * @param rid 角色ID
	 */
	int deleteRole(Long rid);

	/**
	 * 查询所有角色
	 * @param uid 用户ID
	 */
	List<Role> getAllRole();

	/**
	 * 根据用户ID获取角色
	 * @param uid 用户ID
	 */
	List<Role> getRoleByUserId(Long uid);

	/**
	 * 在关系表删除角色的权限
	 * @param rid 角色ID
	 */
	int deletePermissionByRole(long rid);

	/**
	 * 在关系表存入角色的权限
	 * @param rp 中间表
	 */
	int accreditRole(RolePermission rp);

	/**
	 * 根据角色ID查询用户角色关系表
	 * @param rid 角色ID
	 * @return
	 */
	List<UserRole> getUserRoleByRid(Long rid);

	/**   
	 * 根据名称获取角色 
	 * @param name
	 * @return             
	 */
	List<Role> getRoleByName(String name);

	/**   
	 * 根据ID获取角色 
	 * @param rid
	 * @return             
	 */
	Role getRoleById(Long rid);

	
	
	
}
